According to the architecture of the Universal Mobile Telecommunications System (UMTS), the UE-UTRAN radio interface has three protocol layers: the physical layer (L1); the data link layer (L2); and the network layer (L3). Layer 2 is further split into following sublayers: Medium Access Control (MAC), Radio Link Control (RLC), Packet Data Convergence Protocol (PDCP) and Broadcast/Multicast Control (BMC). In turn the RLC sublayer has three different types RLC entities: Transparent Mode (TM), Unacknowledged Mode (UM), and Acknowledged Mode (AM). In FIG. 1, the diagram shows a simplified model of UM RLC peer entities.
RLC performs several basic functions for its upper layers, namely, 1. RLC segments variable-length upper layer Service Data Units (SDUs) into smaller RLC Protocol Data Units (PDUs)s; 2. RLC performs data packages concatenation. If the last segment of an RLC SDU does not fully occupy one RLC PDU, the first segment of the next RLC SDU may be put into the RLC PDU in concatenation with the last segment of the previous RLC SDU; 3. RLC reassembles Protocol Data Units (PDUs) into RLC SDUs; 4. RLC transfers user data that conveys data between users of RLC services; and 5. RLC discards SDUs that allows a RLC transmitter to discharge RLC SDU from the buffer to prevent buffer overflow.
Of course depending on the type of RLC entities, RLC provides additional functions to its upper layers, such as, padding for data package, error correction, in-sequence delivery of upper layers PDUs, duplicate detection, flow control, sequence number check, protocol error detection and recovery and ciphering.
Once RLC PDUs are ready to be passed to the MAC sublayer and scheduled for transmission, package parameters, such as the data size of scheduled PDUs and the number of PDUs that can be transferred in each transmission time interval (TTI), are submitted to MAC by the parameter “RLC Entity Info” of the primitive MAC-STATUS-Req. MAC uses a MAC-STATUS-Ind primitive to indicate to RLC for each logical channel the rate at which it may transfer data to MAC. As shown in FIG. 2, RLC PDUs are further transformed into MAC PDU with MAC selecting a Transport Format Combination (TFC) based on this and other parameters before passing these MAC PDUs down to lower layer L1. This process is called the “TFC selection exchange.” Through this TFC selection process, RLC indicates to MAC the configuration parameters that are critical to TFC selection depending on its mode and the amount of data that could be transmitted at the next TTI. This primitive insures that MAC can perform TFC selection. It is possible that MAC would use this primitive to indicate that it expects the current buffer occupancy of the addressed logical channel in order to provide for optimized TFC selection on transport channels with long transmission time interval. At the UE, MAC-STATUS-Ind primitive is also used to indicate from MAC to RLC that MAC has requested data transmission by L1.
Meantime, a wireless system, especially a timer-based system, uses various timers to monitor the progress of many functions. For example, when upper layers pass a SDU to RLC, the timer Timer_Discard is started to monitor if the SDU has been processed within the countdown of the timer. When Timer_Discard expired, this monitored SDU should be discarded by the RLC. Upper layers set and signal the value of the timer.
Therefore, either in UM or TM, if a timer expires before the corresponding SDU is submitted to lower layer, “SDU discard without explicit signalling” shall be initiated. In AM, if a timer expires before the corresponding SDU is acknowledged, “SDU discard with explicit signalling” shall be initiated. According to the prior art, when the TFC selection exchange has been initiated while the timer Timer_Discard of a SDU expires, an AM RLC of a User Equipment (UE) may wait until after it provides MAC with the requested set of PDUs before discarding the aforementioned SDUs.
Moreover, the operations of RLC entity can be explained by using state models. In FIG. 3, it is a state model for a UM RLC protocol. A UM RLC entity will be in one of three states (Null state, Data_transfor Ready state and Local suspend state). In FIG. 4, it shows a state model for AM RLC entities, which has five states (Null state, Data_transfor Ready state, Local suspend state, Reset_Pending state and Reset_and_suspend state). AM and UM use the state variables to represent various statuses of each state in a protocol. All state variables are non-negative integers. Several state variables contain the Sequence Number (SN) of a PDU. UMD and AMD PDUs are numbered by modulo integer SNs cycling through the field: 0 to 2.sup.12-1 for AM and 0 to 2.sup.7-1 for UM. For example, the send state variable VT(S) contains the SN of the next AMD PDU to be transmitted for the first time. It shall be updated after the aforementioned PDU is transmitted. Meanwhile, the UM data state variable VT(US) contains the SN of the next UMD PDU to be transmitted. It shall be incremented by 1 each time a UMD PDU is transmitted. The invention will use the changes of state variables VT(S) and VT(US) to explain the detail implementation of this invention.
However, in the wireless system, many other unexpected interrupts could happen independently while the TFC selection exchange process has been initialized. Nevertheless, how a wireless system should react to these unexpected interrupts while TFC selection exchange process has been initialized is not well defined in the prior art. These unexpected interrupts are the reset procedure, the re-establishment function, the stop function, and the local suspend function.
In this invention, we shall focus on the local suspend function only. Based on the prior art, either in AM or in UM, the upper layer may issue a suspend command with parameter N to put the RLC entity into a local suspend state. In unacknowledged mode, when an UM RLC entity receives the suspend command, the RLC entity shall respond to the suspend request by sending the upper layers with a confirmation containing the current value of VT(US) and the RLC entity will not send UMD PDUs with sequence number SN≧VT(US)+N. VT(US) contains the SN of the next UMD PDU to be transmitted. When the UM RLC entity is resumed by upper layers, the RLC entity shall resume data transfer procedure normally.
A similar mechanism is used in an RLC entity operating in AM. The upper layers may issue a suspend command with parameter N to the AM RLC entity. The AM RLC entity shall respond to the suspend request with a confirmation containing the current value of VT(S) back to the upper layers and the RLC entity will not send AMD PDUs with sequence number SN≧VT(S)+N. VT(S) contains the SN of the next new AMD PDU to be transmitted. When the AM RLC entity is resumed by upper layers, the RLC entity shall, if the RLC entity is suspended and a RLC Reset procedure is not ongoing, resume data transfer procedure normally. Otherwise, if the RLC entity is suspended and a RLC Reset procedure is ongoing, the RLC entity shall remove the suspend constraint and resume the RLC reset procedure.
Nevertheless, when upper layers issue a suspend command during the initiation of the TFC selection exchange, it can cause TFC selection and transmission scheduling of lower layers to fail. In general, for large enough value of N, this will not be a problem. However, for small value of N, this may cause problems. Since local suspend function may relate to ciphering configuration change, this situation need to be considered carefully. PDUs of sequence number after the suspending point or the suspend sequence number (VT(S)+N for AM and VT(US)+N for UM) may use a different ciphering configuration when transmitted after the entity is resumed by upper layers. The timing for resuming depends on the transmission status of Radio Resource Control (RRC) messages “Security Mode Command” or “Security Mode Complete”. Any PDUs with SN greater than the suspending point transmitted before upper layers resume the RLC entity will suffer from security deciphering error. Therefore, this function cannot be simply delayed until after it provides MAC with the requested set of PDUs.